#pragma once

#ifndef _DROPLET_SIM_GLOBALS
#define _DROPLET_SIM_GLOBALS

#ifdef _WIN32
#include "inttypes.h"
#elif
#include <inttypes.h>
#endif

// Simulator Error Codes
#define DS_SUCCESS	0
#define DS_WARNING	1
#define DS_ERROR	2
#define DS_FATAL	3
typedef unsigned int DS_RESULT;

// Turn Directions
#define TURN_OFF				0x00
#define TURN_CLOCKWISE			0x01
#define TURN_COUNTERCLOCKWISE	0x02
typedef uint8_t turn_direction;

// Move directions
#define MOVE_OFF	0x00
#define NORTH		0x01
#define NORTH_EAST	0x02
#define SOUTH_EAST	0x03
#define SOUTH		0x04
#define SOUTH_WEST	0x05
#define NORTH_WEST	0x06
typedef uint8_t move_direction;

// AVR_GCC Boolean Data Type
#define FALSE	0
#define TRUE	1
typedef uint8_t Bool;

// Droplet Constants
#define DROPLET_ID_START		100 // Droplet ids will start incrementing from this number

// Physics Constants
#define PHYSICS_GRAVITY			-10.0 // ~10 m/s^2

#endif